Large symmetric multiprocessor (SMP) systems can have many partitions. Each partition runs either an operating system (O/S) image or a hypervisor image. Each of these partitions require I/O (input/output) services. Depending on the size of the partition, the associated I/O device interface for accessing storage, networking, or other I/O resources may not be efficiently utilized. Furthermore, the flexibility in partitioning these systems is reduced by the additional constraints of providing the required I/O connectivity to newly created partitions. For some operating systems, each partition may need several different types of I/O device interface. Some of these I/O device interfaces may be sparsely, if ever, used.
Hypervisor technology addresses the above concerns to some extent, but in large utility servers the efficacy of a system of running dissimilar workloads in the same hypervisor may be significantly diminished. Each hypervisor image becomes a large single point of potential failure, which can bring down multiple servers at one time, when a particular hypervisor fails or malfunctions. Finally, as increases in CPU density allow more and more threads and cores to be packed into a single chip, running a large number of guest images in a single hypervisor may not be viable from a reliability standpoint.